package com.boot.study.jianfan;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.ObjectId;
import com.boot.study.jianfan.domain.DataInit;
import com.boot.study.jianfan.domain.FormData;
import com.boot.study.jianfan.domain.FormDataValue;
import com.boot.study.jianfan.domain.ImageDownloadService;
import lombok.extern.slf4j.Slf4j;
import org.dromara.pdf.fop.doc.XEasyPdfTemplateDocument;
import org.dromara.pdf.fop.doc.bookmark.XEasyPdfTemplateBookmark;
import org.dromara.pdf.fop.doc.component.XEasyPdfTemplateComponent;
import org.dromara.pdf.fop.doc.component.block.XEasyPdfTemplateBlockContainer;
import org.dromara.pdf.fop.doc.component.page.XEasyPdfTemplateCurrentPageNumber;
import org.dromara.pdf.fop.doc.component.page.XEasyPdfTemplateTotalPageNumber;
import org.dromara.pdf.fop.doc.component.table.XEasyPdfTemplateTable;
import org.dromara.pdf.fop.doc.component.table.XEasyPdfTemplateTableBody;
import org.dromara.pdf.fop.doc.component.table.XEasyPdfTemplateTableRow;
import org.dromara.pdf.fop.doc.component.text.XEasyPdfTemplateText;
import org.dromara.pdf.fop.doc.page.XEasyPdfTemplatePage;
import org.dromara.pdf.fop.handler.XEasyPdfTemplateHandler;
import org.junit.Test;

import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author lkz
 * @className FormPdfDemo
 * @description 书签集合测试
 * @date 2024/3/1 15:49
 **/
@Slf4j
public class FormPdfDemo2 {


    private final String pageId="pageId";

    @Test
   // public void createDocument2(String outPath) {
    public void createDocument2() throws IOException {
        String outPath = "D:\\pdf\\jianfan\\" + ObjectId.next() + ".pdf";
        // 创建文档
        XEasyPdfTemplateDocument document = XEasyPdfTemplateHandler.Document.build();
        // 创建封面
        XEasyPdfTemplatePage page = XEasyPdfTemplateHandler.Page.build();
                page.setId("1")
                .setMarginTop("70pt").setMarginLeft("20pt")
               .setMarginRight("20pt")
                        .setFontFamily("宋体");
                // 创建标题文本
        XEasyPdfTemplateText titleText = XEasyPdfTemplateHandler.Text.build();
               // .setHorizontalStyle(XEasyPdfPositionStyle.CENTER.name());
        titleText.setText("白蛋白紫杉醇联合马来酸吡咯替尼在HER2阳性早期乳腺癌术后辅助治疗中的单臂多中心II期临床研究")
               // .setTextIndent("60pt") // 文本缩进
                .setFontSize("28pt").setFontFamily("宋体");
        // 创建小标题
        XEasyPdfTemplateText smallTitleText = XEasyPdfTemplateHandler.Text.build().setHorizontalStyle("center");
        smallTitleText.setFontFamily("宋体")
                .setText("受试者病例报告表").setMarginTop("27pt").setFontSize("20pt")
                .setMarginBottom("10pt");
        // 创建标题英文
        XEasyPdfTemplateText smallEnglishTitleText = XEasyPdfTemplateHandler.Text.build().setHorizontalStyle("center");
        smallEnglishTitleText.setFontFamily("宋体")
                .setText("Subject Case Report Form").setFontSize("18pt").setMarginBottom("50pt");
        // 方案版本号
        XEasyPdfTemplateText meVerText = this.buildCoverText("方案版本号:" + "12", "10pt", "5pt");
        //方案版本日期
        XEasyPdfTemplateText metVerTimeText = this.buildCoverText("方案版本日期: "+DateUtil.format(new Date(), "yyyy-MM-dd"), "10pt", "5pt");
        //eCRF版本号
        XEasyPdfTemplateText eCRFVText = this.buildCoverText("eCRF版本号: "+"V2.0", "10pt", "5pt");
        // eCRF版本 日期
        XEasyPdfTemplateText eCRFTimeText = this.buildCoverText("eCRF版本日期: "+DateUtil.format(new Date(), "yyyy-MM-dd"), "10pt", "10pt");


        // 创建表格
        XEasyPdfTemplateTable table = XEasyPdfTemplateHandler.Table.build();
        table.setMarginLeft("150pt")
                .setFontFamily("宋体");
        table.setBody(this.createPageTableData());

        // 申请单位
        XEasyPdfTemplateText applyText = XEasyPdfTemplateHandler.Text.build().setText("申办单位:北京协和医院")
                .setFontSize("15pt").setMarginBottom("5pt").setHorizontalStyle("center")
                .setFontFamily("微软雅黑")
                .setFontWeight("bolder").setMarginTop("80pt");
        // 生成时间
        XEasyPdfTemplateText creatTimeText = this.buildCoverText("生成时间:" + DateUtil.format(new Date(), "yyyy-MM-dd"), "10pt", "20pt");
        page.addBodyComponent(titleText,smallTitleText,smallEnglishTitleText,
                meVerText,metVerTimeText,eCRFVText,eCRFTimeText,table,applyText,creatTimeText);

        // 创建容器
        XEasyPdfTemplateBlockContainer container = XEasyPdfTemplateHandler.BlockContainer.build();
        container.addComponent(this.buildPageNumber("1"));
        // 设置页眉高度并添加页眉组件
        //page.setHeaderHeight("20pt").addHeaderComponent(container);
        // 创建页脚
        page.setFooterHeight("20pt").addFooterComponent(container);
        // 添加页面
        document.addPage(page);
        // 设置封面书签
        document.addBookmark(this.createBookmark("封面","1"));
        // 受试者页面
        document.addPage(this.createSubPage());
        document.addBookmark(this.createBookmark("受试者信息","2"));
        // 模拟获取表单数据
        DataInit dataInit = new DataInit();
        // 获取访视期
        List<VisitData> visitDataList = dataInit.initVisitList();
        List<FormData> newFormData=new ArrayList<>();
        visitDataList.stream().forEach(visit->{
            visit.getFormDataList().stream().forEach(formData -> {
                newFormData.add(formData);
            });
        });
        // 根据访视期生成表单数据
        int i=0;
        Integer formPage=0;
        boolean tag=false;
        for(VisitData visitData:visitDataList){
            // 获取访视期表名
            String visitName = visitData.getVisitName();
            // 获取表单集合
            List<FormData> formDataList = visitData.getFormDataList();
            // 设置表单页面
            if(formPage.equals(0)){
                 formPage = this.createFormPage(document, formDataList, visitName, newFormData, i);
            }else{
                formPage = this.createFormPage(document, formDataList, visitName, newFormData, formPage);
            }


            // 设置书签
            // 根据与访视期创建父书签
            XEasyPdfTemplateBookmark bookmark = this.createBookmark(visitName, newFormData.size()==1?pageId:formDataList.get(0).getIndex());
            for(FormData formData:formDataList){
                String index=String.valueOf(newFormData.size()+2);
                XEasyPdfTemplateBookmark bookmark1 = this.createBookmark(formData.getFormName(),index.equals(formData.getIndex())? pageId:formData.getIndex());
                bookmark.addChild(bookmark1);

            }
            document.addBookmark(bookmark);

        }




        // 转换pdf
        document.transform(outPath);


    }

    /**
     * 创建表单页面
     * @param document
     * @param formDataList
     * @param visitName
     */
    public Integer createFormPage(XEasyPdfTemplateDocument document,List<FormData> formDataList,String visitName,
                               List<FormData> newFormData,Integer i) throws IOException {


        for(FormData formData:formDataList){
            // 获取表单标题
            String formName = formData.getFormName();
            // 获取表单备注
            String remark = formData.getRemark();
            // 创建页面

            // 获取表单的值
            List<FormDataValue> dataVelueList = formData.getDataVelueList();
            // 内嵌表的值
            List<FormDataValue> childDataList = formData.getChildDataList();
            if(CollUtil.isNotEmpty(dataVelueList)){
                XEasyPdfTemplatePage page = XEasyPdfTemplateHandler.Page.build();

                page.setMarginTop("25pt")
                        .setMarginLeft("45pt")
                        .setBodyMarginTop("25pt")
                        // 最后一页设置页面id，用于计算总页数
                        .setId(i==newFormData.size()-1?pageId:formData.getIndex())
                        .setHeaderHeight("20pt")
                        // 页眉
                        .addHeaderComponent(this.createPageHeader("lkz_project_code",visitName,"00998"))
                        // 页脚
                        .setFooterHeight("20pt")
                        .addFooterComponent(this.creatPageNum(i==newFormData.size()-1?pageId:formData.getIndex()))
                        // 页面标题
                        .addBodyComponent("1".equals(remark)?this.buildTitle2(formName,remark):this.buildTitle(formName,remark));
                // 设置表单正文
              this.builderContent(page,dataVelueList,childDataList);

              document.addPage(page);

            }
            i++;
        }

        return i;

    }


    /**
     * 创建页码
     * @return
     */
    public XEasyPdfTemplateBlockContainer creatPageNum(String pageNum){
        XEasyPdfTemplateBlockContainer blockContainer=XEasyPdfTemplateHandler.BlockContainer.build();
        XEasyPdfTemplateTable table = XEasyPdfTemplateHandler.Table.build().setWidth("500pt")
                .setFontFamily("宋体").setFontSize("10pt")
                .setBody(XEasyPdfTemplateHandler.Table.Body.build()
                        .addRow(XEasyPdfTemplateHandler.Table.Row.build()
                                .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                                .addComponent(buildText("v0.008")),
                                        // 页码
                                        XEasyPdfTemplateHandler.Table.Cell.build()
                                                .setHorizontalStyle("center")
                                                .addComponent(this.buildPageNumber(pageNum)),
                                        XEasyPdfTemplateHandler.Table.Cell.build()
                                                .addComponent(buildText(DateUtil.format(new Date(), "yyyy-MM-dd")).setHorizontalStyle("end"))
                                )));
        blockContainer.addComponent(table);
        return blockContainer;
    }


    /**
     * 表单正文
     * @param page
     * @param dataVelueList
     */
    public void builderContent(XEasyPdfTemplatePage page,List<FormDataValue> dataVelueList,List<FormDataValue> childDataList) throws IOException {
        //创建表格
        XEasyPdfTemplateTable table = XEasyPdfTemplateHandler.Table.build();
        table.setFontFamily("宋体")
                .setFontSize("10pt")
                .setVerticalStyle("center")
                .setWidth("500pt").setMinRowHeight("30pt");
        XEasyPdfTemplateTableBody tableBody = XEasyPdfTemplateHandler.Table.Body.build();
        // 主表数据
        for(FormDataValue dataValue:dataVelueList){
            tableBody.addRow(XEasyPdfTemplateHandler.Table.Row.build().setBorder("1 solid black").addCell(
                    XEasyPdfTemplateHandler.Table.Cell.build().addComponent(buildText(dataValue.getFormKey())),
                    XEasyPdfTemplateHandler.Table.Cell.build().addComponent(buildText(dataValue.getForValue())),
                    XEasyPdfTemplateHandler.Table.Cell.build().addComponent(XEasyPdfTemplateHandler.Image.build()
                            .setPath("https://medical.cdn.jianfancloud.com/edc/subject/visit/20231102_15_48_015门诊病历20231011.jpg").setHeight("100pt").setWidth("100pt"))
                    )
            );
        }
        table.setBody(tableBody);
        page.addBodyComponent(table);
        // 子表数据
        // 判断是否存在子集
        if(CollUtil.isNotEmpty(childDataList)){
            String childFormName = childDataList.get(0).getChildFormName();
            XEasyPdfTemplateTable childTableTitle = XEasyPdfTemplateHandler.Table.build();
            childTableTitle
                    .setVerticalStyle("center")
                    .setFontFamily("宋体")
                    .setFontSize("10pt").setWidth("500pt").setMinRowHeight("30pt")
            ;

            childTableTitle.setBody(XEasyPdfTemplateHandler.Table.Body.build().addRow(
                    XEasyPdfTemplateHandler.Table.Row.build().setMinRowHeight("30pt").setBorder("1 solid black")
                            .setVerticalStyle("center").addCell(
                            XEasyPdfTemplateHandler.Table.Cell.build().setBackgroundColor("#8FBC8F").setWidth("500pt")

                                    .addComponent(buildText(childFormName))
                    )
            ));
            page.addBodyComponent(childTableTitle);

            XEasyPdfTemplateTable childDataTable = XEasyPdfTemplateHandler.Table.build();
            childDataTable
                    .setVerticalStyle("center")
                    .setFontFamily("宋体")
                    .setFontSize("10pt").setWidth("500pt").setMinRowHeight("30pt")
            ;
            XEasyPdfTemplateTableBody rowChild = XEasyPdfTemplateHandler.Table.Body.build();
            for(FormDataValue dataValue:childDataList){

//                XEasyPdfTemplateTable childDataTable = XEasyPdfTemplateHandler.Table.build();
//                childDataTable.setVerticalStyle("center").setFontFamily("宋体")
//                        .setFontSize("10pt").setWidth("500pt").setMinRowHeight("30pt")
//                ;
//                XEasyPdfTemplateTableBody rowChild = XEasyPdfTemplateHandler.Table.Body.build();

                //
                rowChild.addRow(XEasyPdfTemplateHandler.Table.Row.build().setBorder("1 solid black")
                        .addCell(
                                XEasyPdfTemplateHandler.Table.Cell.build()
                                        .setBorder("1 solid black")
                                .addComponent(buildText(dataValue.getFormKey())),
                                XEasyPdfTemplateHandler.Table.Cell.build().addComponent(buildText(dataValue.getForValue()))
                        )
                );


            }

            childDataTable.setBody(rowChild);
            page.addBodyComponent(childDataTable);

        }



    }

    public String image() throws IOException {
        ImageDownloadService service = new ImageDownloadService();
        Path path = service.downloadImageFromServer("https://medical.cdn.jianfancloud.com/edc/subject/visit/20231102_15_48_015门诊病历20231011.jpg");
        String path1 = path.toFile().getPath();
        return path1;
    }

    /**
     * 设置标题
     * @param title
     * @return
     */
    private XEasyPdfTemplateTable buildTitle(String title,String remark) {
        return XEasyPdfTemplateHandler.Table.build()
                .setBackgroundColor("#8FBC8F")
                .setVerticalStyle("center")
                .setBorder("1 solid black")
                .setFontFamily("宋体").setWidth("500pt")
                .setBody(XEasyPdfTemplateHandler.Table.Body.build().addRow(
                        XEasyPdfTemplateHandler.Table.Row.build().addCell(
                                XEasyPdfTemplateHandler.Table.Cell.build()
                                        .setHeight("30pt")
                                        .addComponent(buildText(title)))));
    }

    private XEasyPdfTemplateTable buildTitle2(String title,String remark) {
        XEasyPdfTemplateTable build = XEasyPdfTemplateHandler.Table.build();
        build.setBackgroundColor("#8FBC8F")
                //.setVerticalStyle("center")
                .setBorder("1 solid black")
                .setFontFamily("宋体").setWidth("500pt");
        XEasyPdfTemplateTableBody tableBody = XEasyPdfTemplateHandler.Table.Body.build();
        if(remark.equals("1")){
            tableBody.addRow(XEasyPdfTemplateHandler.Table.Row.build().addCell(
                    XEasyPdfTemplateHandler.Table.Cell.build().addComponent(
                            XEasyPdfTemplateHandler.Text.build().setText(title)
                    )
            ),XEasyPdfTemplateHandler.Table.Row.build().addCell(
                    XEasyPdfTemplateHandler.Table.Cell.build().addComponent(
                            XEasyPdfTemplateHandler.Text.build().setText(" 本页已标注为“"+"失效"+"”").setFontColor("red")
                    )
            ));
        }
        build.setBody(tableBody);
        return build;
    }


    /**
     * 创建受试者信息表
     * @return
     */
    public XEasyPdfTemplatePage createSubPage(){

        XEasyPdfTemplatePage subPage = XEasyPdfTemplateHandler.Page.build();
        subPage.setFontFamily("宋体").setMarginLeft("45pt").setBodyMarginTop("14pt").setMarginTop("28pt");
        subPage.setId("2");
        // 添加页眉
        subPage.setHeaderHeight("30pt").setMarginLeft("45pt").addHeaderComponent(this.createPageHeader("project_code","V1.2","0.002"));
        // 设置受试者表格内容
        XEasyPdfTemplateTable table = XEasyPdfTemplateHandler.Table.build();
        table.setVerticalStyle("center").setFontFamily("宋体").setFontSize("10pt")
                .setWidth("500pt").setMinRowHeight("30pt");
        table.setBody(XEasyPdfTemplateHandler.Table.Body.build().addRow(
                XEasyPdfTemplateHandler.Table.Row.build()
                        //.setBorder("1 solid black")
                        .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                .setHeight("30pt").setBackgroundColor("#8FBC8F")
                                .addComponent(buildText("受试者信息表")).setColumnSpan(2)),
                XEasyPdfTemplateHandler.Table.Row.build().setBorder("1 solid black")
                        .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                .addComponent(buildText("研究代码")),
                                XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("02536"))),
                XEasyPdfTemplateHandler.Table.Row.build().setBorder("1 solid black")
                        .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("中心名称")),
                                XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("健帆信息"))),
                XEasyPdfTemplateHandler.Table.Row.build().setBorder("1 solid black")
                        .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("中心编号")),
                                XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("001"))),
                XEasyPdfTemplateHandler.Table.Row.build().setBorder("1 solid black")
                        .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("研究者")),
                                XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText(""))),
                XEasyPdfTemplateHandler.Table.Row.build().setBorder("1 solid black")
                        .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("受试者代码")),
                                XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText("01235")))
        )).setBorder("1 solid black");

        subPage.addBodyComponent(table);

        // 设置页脚
        subPage.addFooterComponent(
                // 创建块容器并添加内容
//                XEasyPdfTemplateHandler.BlockContainer.build().addComponent(
//                        this.buildPageNumber().setHorizontalStyle("center"))
                this.createPageFoot("V2.0","2")
        ).setFooterHeight("30pt");

        return subPage;
    }

    public XEasyPdfTemplateBlockContainer buildPageNumber(String pageNum) {
        // 当前页码
        XEasyPdfTemplateCurrentPageNumber current = XEasyPdfTemplateHandler.CurrentPageNumber.build();
        // 总页码
        XEasyPdfTemplateTotalPageNumber total = XEasyPdfTemplateHandler.TotalPageNumber.build().setPageId(pageId);
        // 创建容器
        return XEasyPdfTemplateHandler.BlockContainer.build().setHorizontalStyle("center")
                .addComponent(buildText("-第"), current, buildText("页/共"), total, buildText("页-").setFontSize("10pt"));
    }

    /**
     * 创建页眉
     * @return
     */
    public XEasyPdfTemplateComponent createPageHeader(String projectCode, String version, String verNum){
       return XEasyPdfTemplateHandler.Table.build().setFontSize("12pt").setWidth("500pt").setMinRowHeight("30pt")
                .setFontFamily("宋体")
                //.setBorder("1 solid black")
                .setBody(XEasyPdfTemplateHandler.Table.Body.build()
                        .addRow(XEasyPdfTemplateHandler.Table.Row.build()
                                .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                        .addComponent(buildText(projectCode)),
                                        XEasyPdfTemplateHandler.Table.Cell.build()
                                                .addComponent(buildText(version).setHorizontalStyle("center")),
                                        XEasyPdfTemplateHandler.Table.Cell.build()
                                                .addComponent(buildText(verNum).setHorizontalStyle("end"))
                                        )));



    }

    /**
     * 创建页脚
     * @return
     */
    public XEasyPdfTemplateComponent createPageFoot(String version,String pageIndex){
        return XEasyPdfTemplateHandler.Table.build().setWidth("500pt")


                .setFontFamily("宋体").setBorder("1 solid black")
                .setBody(XEasyPdfTemplateHandler.Table.Body.build()
                        .addRow(XEasyPdfTemplateHandler.Table.Row.build()
                                .addCell(XEasyPdfTemplateHandler.Table.Cell.build()
                                                .addComponent(buildText("v0.008")),
                                        // 页码
                                        XEasyPdfTemplateHandler.Table.Cell.build()
                                                .setHorizontalStyle("center")
                                                .addComponent(this.buildPageNumber(pageIndex)),
                                        XEasyPdfTemplateHandler.Table.Cell.build()
                                                .addComponent(buildText(DateUtil.format(new Date(),"yyyy-MM-dd")).setHorizontalStyle("end"))
                                )));



    }




    /**
     * 创建书签对象
     * @param pageBook 书签名称
     * @param pageId 书签组件id
     * @return
     */
    public XEasyPdfTemplateBookmark createBookmark(String pageBook,String pageId){
        XEasyPdfTemplateBookmark bookmark = XEasyPdfTemplateHandler.Bookmark.build();
        bookmark.setTitle(pageBook)
                // 设置内部地址
                .setInternalDestination(pageId);

        return bookmark;
    }

    /**
     * 封面表格数据
     * @return
     */
    public XEasyPdfTemplateTableBody createPageTableData(){
        XEasyPdfTemplateTableBody xEasyPdfTemplateTableBody = XEasyPdfTemplateHandler.Table.Body.build().
                addRow(
                this.builderRow2("研究代码","v12"),
                this.builderRow2("临床实验组长单位","清风集团"),
                this.builderRow2("主要研究","李医生"),
                this.builderRow2("代码","00021")
        );
        return xEasyPdfTemplateTableBody;
    }

    /**
     * 创建单元格
     * @param key
     * @param value
     * @return
     */
    private XEasyPdfTemplateTableRow builderRow(String key, String value) {
        return XEasyPdfTemplateHandler.Table.Row.build().setVerticalStyle("center").addCell(
                XEasyPdfTemplateHandler.Table.Cell.build()
                        .setBorder("0")
                        .addComponent(buildText("")),
                XEasyPdfTemplateHandler.Table.Cell.build()
                        .setHorizontalStyle("end")
                        .setBorder("1 solid black")
                        .addComponent(buildText(key).setMargin("0").setMarginRight("10pt")),
                XEasyPdfTemplateHandler.Table.Cell.build()
                        .setBorder("1 solid black")
                        .addComponent(buildText(value).setMargin("0").setMarginLeft("10pt")),
                XEasyPdfTemplateHandler.Table.Cell.build()
                        .setBorder("0")
                        .addComponent(buildText("")));
    }
    public XEasyPdfTemplateTableRow builderRow2(String key,String value){
        return XEasyPdfTemplateHandler.Table.Row.build().setVerticalStyle("center").addCell(

                XEasyPdfTemplateHandler.Table.Cell.build()
                        .setHorizontalStyle("end")
                        .setBorder("1 solid black")
                        .addComponent(buildText(key).setMarginRight("10pt")),
                XEasyPdfTemplateHandler.Table.Cell.build()
                        .setBorder("1 solid black")
                        .addComponent(buildText(value).setMarginLeft("10pt")));

    }


    /**
     *
     * @param text 文本
     * @param fontSize 字体大小
     * @param marginBottom 下边界
     * @return
     */
    private XEasyPdfTemplateText buildCoverText(String text, String fontSize, String marginBottom) {
        return buildText(text)
                .setFontSize(fontSize)
                .setHorizontalStyle("center")
                .setFontFamily("宋体")
                .setMarginBottom(marginBottom);
    }

    /**
     * 构造文本对象
     *
     * @param text 文本内容
     * @return 文本对象
     */
    private static XEasyPdfTemplateText buildText(String text) {
        return XEasyPdfTemplateHandler.Text.build().setText(text);
    }

}
